home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
mosaic
/
mosaic2.bas
next >
Wrap
BASIC Source File
|
1991-10-18
|
5KB
|
172 lines
1000 ' モザイクプログラム
1010 '
1020 ' 1991.01.07
1030 '
1040 ' 長太郎
1050 '
1060 '
1070 '
1080 MOUSE 0
1090 FLG=0
1100 STOP OFF
1110 '
1120 '
1130 *TITLE
1140 '
1150 SCREEN @0:C=0
1160 FOR A=0 TO 7:PALETTE A,[C,C,C]:C=C+32:NEXT
1170 COLOR 7,%2:CLS
1180 MOUSE 1,320,240,1
1190 MOUSE 4,140,120,500,360
1200 HDS0%=&H00E7:HDE0%=&H05E7
1210 VDS0%=&H002A:VDE0%=&H020A
1220 ZOOM%=&H00101
1230 '
1240 LINE(0,0)-(639,479),PSET,%0,BF
1250 LINE(140,120)-(500,360),PSET,%3,BF
1260 LINE(139,119)-(501,361),PSET,%7,B
1270 LINE(300,150)-(495,300),PSET,%5,B
1280 SYMBOL(274,124),"MOSAIC",1,1,%7,,,5
1290 SYMBOL(174,204),"START",1,1,%4,,,5
1300 SYMBOL(174,234),"SOUND",1,1,%4,,,5
1310 IF FLG=1 THEN SYMBOL(174,234),"SOUND",1,1,%6,,,5
1320 SYMBOL(174,284),"E N D",1,1,%4,,,5
1330 SYMBOL(384,334),"By 長太郎",1,1,%5,,,5
1340 '
1350 '
1360 *MENU
1370 '
1380 IF MOUSE(2,0) THEN GOTO 1400
1390 GOTO 1380
1400 MX=MOUSE(0):MY=MOUSE(1)
1410 IF MX>175 AND MX<250 AND MY>205 AND MY<215 THEN GOTO *START
1420 IF MX>175 AND MX<250 AND MY>235 AND MY<250 THEN GOTO *SOUND
1430 IF MX>175 AND MX<250 AND MY>285 AND MY<300 THEN GOTO *END
1440 GOTO 1380
1450 '
1460 '
1470 *END
1480 '
1490 SYMBOL(174,284),"E N D",1,1,%6,,,5
1500 SYMBOL(340,165),"終了します。",1,1,%6,,,5
1510 SYMBOL(325,205),"[Yes/No]",1,1,%6,,,5
1520 IF MOUSE(2,0) THEN GOTO 1540
1530 GOTO 1520
1540 MX=MOUSE(0):MY=MOUSE(1)
1550 IF MX>344 AND MX<384 AND MY>205 AND MY<220 THEN CLS:SYSTEM
1560 IF MX>408 AND MX<432 AND MY>205 AND MY<220 THEN GOTO 1580
1570 GOTO 1520
1580 SYMBOL(174,284),"E N D",1,1,%4,,,5
1590 LINE(301,151)-(494,299),PSET,%3,BF
1600 GOTO *MENU
1610 '
1620 '
1630 *SOUND
1640 '
1650 IF FLG=0 THEN GOTO 1660 ELSE GOTO 1730
1660 SYMBOL(174,234),"SOUND",1,1,%6,,,5
1670 OUT &H04E1,&H0C '左
1680 OUT &H04E0,&H3F 'SOUND ON
1690 OUT &H04E1,&H0D '右
1700 OUT &H04E0,&H3F 'SOUND ON
1710 FLG=1:FOR A=0 TO 1000:NEXT A: GOTO *MENU
1720 '
1730 SYMBOL(174,234),"SOUND",1,1,%4,,,5
1740 OUT &H04E1,&H10 '左
1750 OUT &H04E0,&H3F 'SOUND OFF
1760 OUT &H04E1,&H11 '右
1770 OUT &H04E0,&H3F 'SOUND OFF
1780 FLG=0:FOR A=0 TO 1000:NEXT A :GOTO *MENU
1790 '
1800 '
1810 *START
1820 '
1830 OUT &H0440,&H1E
1840 VIN=INP(&H0443,1) AND &H01
1850 IF VIN=1 THEN GOTO 1950
1860 SYMBOL(174,204),"START",1,1,%6,,,5
1870 SYMBOL(330,165),"ビデオ信号の入力が",1,1,%6,,,5
1880 SYMBOL(330,185),"ありません。",1,1,%6,,,5
1890 S1=MOUSE(0):FOR A=0 TO 1000:NEXT
1900 S2=MOUSE(0):IF S1=S2 THEN GOTO 1900
1910 LINE(301,151)-(494,299),PSET,%3,BF
1920 SYMBOL(174,204),"START",1,1,%4,,,5
1930 GOTO *MENU
1940 '
1950 CLS:SCREEN@ 1:SIMPOSE ON
1960 OUT &H448,&H01
1970 OUT &H44A,&H00
1980 OUT &HFDA0,&H0F
1990 OUT &H0440,&H1C
2000 OUT &H0442,&HC0C5
2010 MOUSE 0
2020 MOUSE 1,160,120,0
2030 MOUSE 4,0,0,319,239
2040 XB=0 : YB=0
2050 '
2060 '
2070 *LOOP
2080 '
2090 OUT &H0440,&H1E
2100 VIN=INP(&H0443,1) AND &H01
2110 IF VIN=1 THEN GOTO 2250
2120 OUT &H0440,&H1C
2130 OUT &H0442,&HC005
2140 SCREEN@0:CLS
2150 SYMBOL(200,220),"ビデオ信号の入力がありません。",1,1,4,,,5
2160 OUT &H0440,&H1E
2170 VIN=INP(&H0443,1) AND &H01
2180 IF VIN=1 THEN GOTO 2210
2190 IF MOUSE(2,0) THEN *TITLE
2200 GOTO 2160
2210 SCREEN@1:SIMPOSE ON
2220 OUT &H0440,&H1C
2230 OUT &H0442,&HC0C5
2240 '
2250 IN$=INKEY$
2260 IF IN$=CHR$(&H1C) THEN :XB=XB+16:IF XB>640 THEN XB=640
2270 IF IN$=CHR$(&H1D) THEN :XB=XB-16:IF XB<0 THEN XB=0
2280 IF IN$=CHR$(&H1E) THEN :YB=YB+8 :IF YB>240 THEN YB=240
2290 IF IN$=CHR$(&H1F) THEN :YB=YB-8 :IF YB<0 THEN YB=0
2300 '
2310 IF MOUSE(2,0) THEN GOTO *TITLE
2320 '
2330 X1=MOUSE(0)*4-XB+&H00E7
2340 X2=MOUSE(0)*4+XB+&H00E7
2350 Y1=MOUSE(1)*2-YB+&H002A
2360 Y2=MOUSE(1)*2+YB+&H002A
2370 '
2380 IF IN$="0" THEN ZOOM%=&H0101
2390 IF IN$="1" THEN ZOOM%=&H0117
2400 IF IN$="2" THEN ZOOM%=&H013F
2410 IF IN$="3" THEN ZOOM%=&H017F
2420 IF IN$="4" THEN ZOOM%=&H01EF
2430 IF IN$="5" THEN ZOOM%=&H01E3
2440 '
2450 IF X1<&H00E7 THEN HDS0%=&H00E7 ELSE HDS0%=X1
2460 IF X2>&H05E7 THEN HDE0%=&H05E7 ELSE HDE0%=X2
2470 IF Y1<&H002A THEN VDS0%=&H002A ELSE VDS0%=Y1
2480 IF Y2>&H020A THEN VDE0%=&H020A ELSE VDE0%=Y2
2490 '
2500 VSYNC=INP(&HFDA0,1)
2510 IF (VSYNC AND &H0001)=0 THEN GOTO 2530
2520 GOTO 2500
2530 VSYNC=INP(&HFDA0,1)
2540 IF (VSYNC AND &H0001)=1 THEN GOTO 2560
2550 GOTO 2530
2560 '
2570 OUT &H0440,&H09
2580 OUT &H0442,HDS0%,2
2590 OUT &H0440,&H0A
2600 OUT &H0442,HDE0%,2
2610 OUT &H0440,&H0D
2620 OUT &H0442,VDS0%,2
2630 OUT &H0440,&H0E
2640 OUT &H0442,VDE0%,2
2650 OUT &H0440,&H12
2660 OUT &H0442,HDS0%,2
2670 OUT &H0440,&H1B
2680 OUT &H0442,ZOOM%,2
2690 '
2700 GOTO *LOOP